home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / emacs.dos < prev    next >
Text File  |  1993-07-08  |  30KB  |  981 lines

  1.  
  2.  
  3.  
  4.  
  5.                Demacs version 1.2.0 (1991/12/12)
  6.  
  7.                    DOS version of GNU Emacs
  8.  
  9.  
  10.  
  11.                Manabu Higashida
  12.  
  13.          manabu@sigmath.osaka-u.ac.jp
  14.  
  15.             Osaka University, JAPAN
  16.  
  17.  
  18.                  and
  19.  
  20.  
  21.             HIRANO Satoshi
  22.  
  23.          hirano@tkl.iis.u-tokyo.ac.jp
  24.  
  25.           University of Tokyo, Japan
  26.  
  27.  
  28.  
  29. Copyright 1991  Halca Computer Science Laboratory TM
  30. Copyright 1991  Manabu Higashida
  31.  
  32. Demacs is free software; you can redistribute it and/or modify it
  33. under the terms of the GNU General Public License version 1 as
  34. published by the Free Software Foundation.
  35.  
  36. This program is distributed in the hope that it will be useful, but
  37. WITHOUT ANY WARRANTY; without even the implied warranty of
  38. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  39. General Public License (this package includes it as file 'copying')
  40. for more details.
  41.  
  42.  
  43.  
  44. Demacs version 1.2.0
  45. ********************
  46.  
  47. Demacs---386/486 DOS version of GNU Emacs.
  48.  
  49.  
  50.  
  51. Current Version
  52. ===============
  53.  
  54. Demacs is currently based on GNU Emacs version 18.55 (partly 18.57).
  55.  
  56. Demacs version itself is 1.2.0 (1991/12/12).
  57.  
  58. ## Command: demacs-version
  59.      Return string describing the version of Demacs that is running.
  60.  
  61.  
  62.  
  63. Platforms
  64. =========
  65.  
  66. Hardware
  67.      386/486 based DOS machines---IBM PC and its compatible, AX, J-3100, 
  68.      or NEC PC-9801, High resolusion PC-98 and its compatible EPSON PC-386
  69.  
  70. Software
  71.      MSDOS 3.0 or later
  72.  
  73.      XMS manager (`HIMEM.SYS') and VCPI memory manager (`EMM386.EXE',
  74.      `QEMM', etc.) compatible.
  75.  
  76.      Demacs does not support DPMI, thus it can not be used with extended
  77.      mode on Windows.
  78.  
  79.  
  80.  
  81. Bug Report
  82. ==========
  83.  
  84. When you have troubles with using Demacs, please follow the following
  85. steps before inquire us.
  86.  
  87. First, read this README and the online-manuals (with Info Browser) to
  88. find answers. Next, consult to Emacs experts around you or on the
  89. networks. In case you decide to send a mail to the authors, you must
  90. read "Bugs" section in the Emacs manual before sending the mail.
  91.  
  92. Suggestions and bug fixes are welcome with next address.
  93.  
  94.      demacs-bugs@sigmath.osaka-u.ac.jp
  95.  
  96. If you want to know current status about Demacs, send empty mail to
  97. next address.
  98.  
  99.      demacs@sigmath.osaka-u.ac.jp
  100.  
  101. We will reply your mail with latest information, automatically.
  102.  
  103.  
  104.  
  105. Installation
  106. ************
  107.  
  108.  
  109.  
  110. Contents of This Distribution Kit
  111. =================================
  112.  
  113. The package consists of two archives; `dem120e.lzh' and `dem120s.lzh'. 
  114. You need LHarc or LHa utility to unpack these archives. Don't forget to
  115. use `/mx' switches with `-x' option to unpack them. For example do as
  116. following.
  117.  
  118.      lharc x /mx dem120e.lzh
  119.      lharc x /mx dem120s.lzh
  120.  
  121. And similarly apply these options to the archives which are contained by
  122. them.
  123.  
  124. After unpacking, following files will appear.
  125.  
  126. `dem120e.lzh' (executables)
  127.  
  128.      readme            this file
  129.      demacs.tex        texinfo version of `readme'
  130.      demacs.dvi        compiled `demacs.tex' by TeX
  131.      copying           GNU General Public Licence
  132.      copying.dj        DJGCC copyright notice
  133.      termcap           sample termcap file
  134.      _emacs            sample startup file
  135.      bin\demacspc.exe  DOS extender for IBM PC and its compatible machines
  136.      bin\demacs98.exe  DOS extender for PC-9801, PC-386 series
  137.      bin\demacs        demacs object file (stripped)
  138.      bin\temacs        `plain' demacs object file (stripped)
  139.      etc.lzh           emacs documentation string file and etc.
  140.      lisp.lzh          includes lisp files which are necessary to run
  141.      edired.lzh        enhanced dired-mode
  142.  
  143.  
  144.  
  145. `dem120s.lzh'  (source files)
  146.  
  147.      src\diffs.lzh       includes only different files from the original
  148.      lisp\diffs.lzh      includes only different files from the original 
  149.      go32_98\source.lzh  PC-9801 version go32 DOS extender from DJGCC 
  150.      go32_pc\source.lzh  IBM PC version go32 DOS extender from DJGCC    
  151.  
  152.  
  153. NOTE: 
  154.  
  155. This package only includes lisp files which are modified for Demacs.
  156. Original and/or other useful lisp stuff can be obtained from various FTP
  157. sites (for example `ftp.sigmath.osaka-u.ac.jp') or from:
  158.  
  159.      Free Software Foundation, Inc.
  160.      675 Mass Ave, Cambridge, MA 02139, USA
  161.  
  162.  
  163.  
  164. How to Install
  165. ==============
  166.  
  167. Demacs requires special version of `go32.exe' DOS extender. This package
  168. includes it with its name `bin\demacspc.exe' for IBM PC or
  169. `bin\demacs98.exe' for PC-9801 series. You should use one of them with
  170. renameing to `demacs.exe'.
  171.  
  172. Since `go32.exe' which came along with the package of DJ's GCC/G++
  173. version 1.05 can not handle `Ctrl-C' properlly, we modified it to work
  174. correctly. And we made some changes to be able to handle more DOS
  175. function call, and enhanced its memory management strategy (detail, see
  176. below).
  177.  
  178. Installation procedure is quite easy. 
  179.  
  180.   1. If your system is IBM PC variant (including AX and J-3100 series),
  181.      copy `bin/demacspc.exe' to the directory in PATH with its name
  182.      `demacs.exe'.
  183.  
  184.      If your system is NEC PC-9801 or EPSON PC-386 series, copy
  185.      `bin/demacs98.exe' to the directory in PATH with its name
  186.      `demacs.exe'.
  187.  
  188.   2. Copy `bin\demacs' in the same directory with `demacs.exe'.
  189.  
  190.   3. Create `lisp' and `etc' directory in `\lib\emacs' directory.
  191.  
  192.   4. If you want to use lisp library, get original lisp files from
  193.      somewhere and copy them in `\lib\emacs\lisp' directory. Then unpack
  194.      `lisp.lzh' in `\lib\emacs' directory.
  195.  
  196.   5. Unpack `etc.lzh' in `\lib\emacs' directory.
  197.  
  198.   6. Set TERM environment variable for your system (See following example).
  199.  
  200.   7. Set TERMCAP variable if `termcap' file is not stay under `\etc'.
  201.  
  202.   8. Prepare your `_emacs' (`.emacs' on Unix system) under your HOME
  203.      directory if you need it.
  204.  
  205.  
  206.  
  207. Sample Session to Install
  208. =========================
  209.  
  210.      C> copy bin\demacspc.exe \tools\bin\demacs.exe (IBM PC, AX, J-3100)
  211.      C> copy bin\demacs \tools\bin
  212.           or
  213.      C> copy bin\demacs98.exe \tools\bin\demacs.exe (PC-9801, PC-386)
  214.      C> copy bin\demacs \tools\bin
  215.  
  216.      C> mkdir \lib\emacs
  217.      C> mkdir \lib\emacs\lisp
  218.      C> mkdir \lib\emacs\etc
  219.      C> copy lisp.lzh \lib\emacs
  220.      C> copy etc.lzh \lib\emacs
  221.      C> cd \lib\emacs
  222.      C> lharc x /mx lisp.lzh
  223.      C> lharc x /mx etc.lzh
  224.      C> del lisp.lzh
  225.      C> del etc.lzh
  226.  
  227.      C> set TERM=ibmpc  (IBM PC)
  228.            or
  229.         set TERM=j3100  (J-3100)
  230.            or
  231.         set TERM=pc98   (PC-9801, PC-386)
  232.  
  233.      C> set TERMCAP=c:\etc\termcap   (IBM PC, J-3100)
  234.           or
  235.         set TERMCAP=a:\etc\termcap   (PC-9801, PC-386)
  236.  
  237.      C> set HOME=c:\home (your startup file '_emacs' is placed)
  238.  
  239.  
  240.  
  241. Invocation
  242. **********
  243.  
  244.  
  245.  
  246. Environment Variables
  247. =====================
  248.  
  249. `C>set GO32TMP=c:/tmp'
  250.      directory where swapped files are placed (see DJGCC's readme).
  251.  
  252. `C>set TERM=ibmpc'
  253.      entry name of `termcap'.
  254.  
  255. `C>set TERMCAP=c:/etc/termcap'
  256.      directory where `termcap' file are placed.
  257.  
  258. `C>set HOME=c:/home'
  259.      directory where startup file `_emacs' are placed.
  260.  
  261. `C>set TZ=JST-9'
  262.      time zone.
  263.  
  264. `C>set USER=manabu'
  265.      your name up to 8 characters.
  266.  
  267. `C>set EMACSLOADPATH=d:/emacs/lisp'
  268.      set lisp load path if you don't use standard path `/lib/eamcs/lisp'.
  269.  
  270. `C>set EMACSEXECPATH=d:/emacs/etc'
  271.      set etc load path if you don't use standard path `/lib/emacs/etc'.
  272.  
  273. `C>set DEMACS_KEEP=1024'
  274.      amount of extended memory to keep (detail, see below).
  275.  
  276. `C>set SHELL=c:\command.com'
  277.      your command interpreter path.
  278.  
  279.  
  280.  
  281. Options of DOS Extender `demacs.exe'
  282. ====================================
  283.  
  284. `-keep [NUM]'
  285.      When `demacs.exe' invokes a child process, `demacs.exe' does not
  286.      swap out contents of the extended memory to a disk. If NUM is
  287.      specified, `demacs.exe' uses up to NUM killo bytes of extended
  288.      memory.
  289.  
  290.      You should use this option with XMS or VCPI memory manager. If not, may
  291.      cause violation.
  292.  
  293. More about `-keep' opiton:
  294.  
  295. `demacs.exe' provides virtual memory mechanism. If an application (e.g. 
  296. Demacs) requires more memory than equipped real memory, `demacs.exe'
  297. write out a portion of real memory to a disk in order to make a free
  298. memory, then `demacs.exe' assigns the new free memory to the
  299. application. This is called "swapping".
  300.  
  301. Swapping does not only happen when real memory shortage, but also
  302. happens when `demacs.exe' calls a child process. That is, before
  303. execution of the child process, `demacs.exe' swapps out all of allocated
  304. memory to a disk so that the child process can use memory.
  305. Unfortunatly, swapping takes very long time because Demacs is a huge
  306. program.
  307.  
  308. In order to eliminate this swapping time, our `demacs.exe' can take
  309. `-keep' option. `-keep' option requests to `demacs.exe' NOT to swap out
  310. contents of extended memory (conventional memory (less than 640KB) is
  311. always swapped out).
  312.  
  313. In case you use XMS driver such as `himem.sys', since `demacs.exe'
  314. obtains all of free extended memory at startup, a child process can not
  315. use any extended memory (Remember GCC/G++ requires extended memory).
  316. You can reserve extended memory for the child process by following NUM
  317. to `-keep', e.g. ``-keep 1024''. NUM which is killo byte unit number
  318. limits amount of usage of extended memory by `demacs.exe'. If less
  319. amount of extended memory is available than NUM at startup, `demacs.exe'
  320. uses all of extended memory.
  321.  
  322. Otherwise in case you use VCPI driver such as `QEMM' or `EMM386',
  323. `demacs.exe' gets extended memory on demand basis. ``-keep NUM'' limits
  324. amount of extended memory used by `demacs.exe' to NUM killo bytes.
  325.  
  326. The following table shows a brief summary.
  327.  
  328.  
  329.                    | swap out          |
  330.                    | extended memory   |
  331.                    | at fork child     | extended memory for child
  332.      --------------+-------------------+------------------------------
  333.      without -keep |  YES              | all of extended memory at startup
  334.      -keep         |  NO               | nothing
  335.      -keep <num>   |  NO               | extended memory at startup - num
  336.  
  337.  
  338. Too small NUM makes Demacs slower. I recommend to set NUM at
  339. least 512.
  340.  
  341. Example (Demacs uses 1024KB extended memory):
  342.  
  343.      demacs.exe -keep 1024
  344.  
  345. NUM can be also specified by DEMACS_KEEP environment variable. If both
  346. environment variable and option are specified, option has priority. If
  347. you don't need to specify NUM with `-keep' option, specify the value `0'
  348. with this environment variable.
  349.  
  350.  
  351.  
  352. Options of Demacs
  353. =================
  354.  
  355. Type `demacs [-keep [NUM]] [options]' to invoke Demacs. If you need more
  356. information, see "GNU Emacs manual".
  357.  
  358.  
  359.  
  360. Features
  361. ********
  362.  
  363.  
  364.  
  365. File Type: Text or Binary Translation
  366. =====================================
  367.  
  368.  
  369.  
  370. Translation Mode
  371. ----------------
  372.  
  373. On MS-DOS file system, a line is ended with CR (0x0d)/LF (0x0a)
  374. characters and a file is ended with `Ctrl-Z' character. But on UNIX file
  375. system, a line is ended with only LF character, and end of data meas end
  376. of file.
  377.  
  378. Treating "binary files" which contains `Ctrl-Z' characters and for
  379. compatibility to UNIX file system, C I/O library on MS-DOS has following
  380. two translation mode which control these characters.
  381.  
  382.    * Text mode translation
  383.    * Binary mode translation
  384.  
  385. With text mode translation, on reading, CR/LF code are translated to CR
  386. and reading is terminated as soon as `Ctrl-Z' appears. On writing, LF is
  387. added to CR and `Ctrl-Z' is added to end of file.
  388.  
  389. With binary mode translation, no code is translated.
  390.  
  391. Demacs supports these two translation mode, and manage them on each
  392. buffer. You can find current translation mode of the buffer from file
  393. type mnemonic on the mode line.
  394.  
  395.      --**-Emacs: demacs.tex   (T:Texinfo)--42%---------------
  396.                                ^
  397.  
  398. File type mnemonic means
  399.  
  400. `T'
  401.      Text mode translation.
  402. `B'
  403.      Binary mode translation.
  404.  
  405. We call this translation mode which is managed on each buffer "file
  406. type".
  407.  
  408.  
  409.  
  410. Demacs Buffer Management
  411. ------------------------
  412.  
  413.  
  414.  
  415. File Type of Each Buffer
  416. ........................
  417.  
  418. File type of each buffer is stored on buffer-local `file-type' variable. 
  419. To set the value of `file-type' use the `set-file-type' function.
  420.  
  421. The default value of `file-type' is the value of `default-file-type'
  422. variable. To set its value, use the `set-default-file-type' function.
  423.  
  424. ## Local Variable: file-type
  425.      `0'
  426.           Text mode translation.
  427.      `1'
  428.           Binary mode translation.
  429.  
  430. ## Command: set-file-type TYPE &optional BUFFER
  431.      This function sets buffer-local `file-type' variable of BUFFER to
  432.      TYPE. The argument BUFFER defaults to the current buffer. The value
  433.      of TYPE is one of followings.
  434.      `0' or `'text' or `"text"'
  435.           Specify the buffer's file type to text mode.
  436.      `1' or `'binary' or `"binary"'
  437.           Specify the buffer's file type to binary mode.
  438.  
  439. ## Global Variable: default-file-type
  440.      The value of this grobal bariable is the default value of
  441.      buffer-local `file-type' variable.
  442.  
  443. ## Command: set-default-file-type TYPE
  444.      This function sets the value of `default-file-type' variable to
  445.      TYPE. The value of TYPE is one of followings.
  446.      `0' or `'text' or `"text"'
  447.           Specify the buffer's file type to text mode, by default.
  448.      `1' or `'binary' or `"binary"'
  449.           Specify the buffer's file type to binary mode, by default.
  450.  
  451.  
  452.  
  453. Buffer Creation
  454. ...............
  455.  
  456. When creating a new buffer, Demacs set the buffer's local variable
  457. `file-type' to the value of the `default-file-type' variable.
  458.  
  459.  
  460.  
  461. Reading Files into Demacs Buffers
  462. ---------------------------------
  463.  
  464. Using the `define-file-name-file-type' function, you can define file
  465. type associated with file name.
  466.  
  467. For example, 
  468.  
  469.      (define-file-name-file-type "\\.mem$" 'binary)
  470.  
  471. defines that file type of files having extention `.mem' is binary.
  472.  
  473. By default, the files ending with `.elc', `.obj', `.exe', `.com',
  474. `.lib', `.sys' (except `config.sys'), `.chk', `.o', `.a' and `.out' are
  475. defined as binary file type. This is defined in `demacs.el'.
  476.  
  477. ## Function: define-file-name-file-type FILENAME TYPE
  478.      This function defines file type associate with file name. FILENAME
  479.      is regular expression or `nil'. `nil' matches any file anme. TYPE
  480.      is file type.
  481.  
  482. ## Function: find-file-type-from-file-name FILENAME
  483.      This function returns file type which associate with FILENAME
  484.      defined by `define-file-name-file-type' function. If no file type
  485.      is defined, this returns a value of `default-file-type'.
  486.  
  487.  
  488.  
  489. Inserting Files into Buffers
  490. ............................
  491.  
  492. When inserting a file already visiting buffer, Demacs calls the
  493. `find-file-type-from-file-name' function with file name of target file
  494. as its argument, and set return value to file type of the buffer.
  495.  
  496.  
  497.  
  498. Visiting Files and Reading
  499. ..........................
  500.  
  501. When visiting a file and reading into a buffer, Demacs calls the
  502. `find-file-type-from-file-name' function with file name of target file
  503. as its argument, and set return value to file type of the buffer.
  504.  
  505.  
  506.  
  507. Creating Files and Visiting
  508. ...........................
  509.  
  510. The `find-file-not-found-set-file-type' function is appended to
  511. the `find-file-not-found-hooks' variable. This means that
  512. `find-file-not-found-set-file-type' is called when the visiting
  513. file not exists.
  514.  
  515. This function calls internally the `find-file-type-from-file-name'
  516. function with target name as its argument and set return value to file
  517. type of the buffer.
  518.  
  519.  
  520.  
  521. Writing Buffers into Files
  522. --------------------------
  523.  
  524. When writing a buffer into a file, Demacs set translation mode to file
  525. type of the buffer.
  526.  
  527.  
  528.  
  529. Process I/O
  530. -----------
  531.  
  532. Demacs communicate with external process (child process) using temporary
  533. file. The `default-file-type' variable is used as file type of the
  534. buffer which displays result.
  535.  
  536.  
  537.  
  538. "8bit clean" Display Mode
  539. =========================
  540.  
  541. Demacs supports so called "8bit clean" display mode, which displays 8bit
  542. dirty characters as it is instead of backslashed or arrowed form.
  543.  
  544. If you want use this mode, execute command `toggle-pass8-mode'. You can
  545. find in mode line whether the buffer is in "8bit clean" display mode.
  546.  
  547.      --**-Emacs: foo.bar      (T:Fundamental Pass8)--28%---------------
  548.                                              ^^^^^
  549.  
  550. To return ordinary display mode, again execute command
  551. `toggle-pass8-mode'.
  552.  
  553. If you want create a buffer always in "8bit clean" display mode, place
  554.  
  555.      (setq-default pass8-mode t)
  556.  
  557. in your startup file.
  558.  
  559. ## Local Variable: pass8-mode
  560.      If this variable is `*Non-nil', Demacs displays 8bit dirty
  561.      characters as it is. Default value is `nil'.
  562.  
  563. ## Command: toggle-pass8-mode
  564.      Set/Unset the buffer local variable `pass8-mode'.
  565.  
  566.  
  567.  
  568. 8086 Software Interrupt
  569. =======================
  570.  
  571. Function `int86' generate 8086 software interrupt. DOS Extender
  572. `demacs.exe' not handle all interrupts, so some interrupts are treated
  573. as exception and may cause violation. Use this carefully.
  574.  
  575. Use this function like this.
  576.  
  577.      int
  578.      GetDisk ()
  579.      {
  580.        union REGS regs;
  581.        regs.h.ah = 0x19;     /* 25 */
  582.        int86 (0x21 /* 33 */, ®s, ®s);
  583.        return regs.h.al;
  584.      }
  585.  
  586. C funtion to get current disk number may write in Demacs as follows:
  587.  
  588.      (defun get-disk ()
  589.        (let ((regs (make-register)))
  590.          (set-register-value regs 'ah 25)    ; 0x19
  591.          (int86 33 regs)                     ; 0x21
  592.          (register-value regs 'al)))
  593.  
  594. ## Function: make-register
  595.      Generate instance of register type which is passwd to `int86'
  596.      function.
  597.  
  598. ## Function: register-value REGISTER NAME
  599.      Get the value of REGISTER's NAME. NAME is one of followings.
  600.  
  601.      `'ax'
  602.           `ax' register
  603.      `'bx'
  604.           `bx' register
  605.      `'cx'
  606.           `cx' register
  607.      `'dx'
  608.           `dx' register
  609.      `'si'
  610.           `si' register
  611.      `'di'
  612.           `di' register
  613.      `'cflag'
  614.           carry flag
  615.      `'flags'
  616.           flag register
  617.  
  618.      or
  619.  
  620.      `'al'
  621.           lower byte of `ax' register
  622.      `'ah'
  623.           upper byte of `ax' register
  624.      `'bl'
  625.           lower byte of `bx' register
  626.      `'bh'
  627.           upper byte of `bx' register
  628.      `'cl'
  629.           lower byte of `cx' register
  630.      `'ch'
  631.           upper byte of `cx' register
  632.      `'dl'
  633.           lower byte of `dx' register
  634.      `'dh'
  635.           upper byte of `dx' register
  636.  
  637. ## Function: set-register-value REGISTER NAME VALUE
  638.      Set REGISTER's NAME to VALUE. VALUE is unsigned integer.
  639.  
  640. ## Function: int86 INTNO REGISTER
  641.      Generate 8086 software interrupt of number INTNO with REGISTER. 
  642.      This returns set of register value.
  643.  
  644.  
  645.  
  646. Machine Specified Features
  647. ==========================
  648.     
  649. New lisp variable `dos-machine-type' is introduced for support various
  650. machines.
  651.  
  652. ## Global Variable: dos-machine-type
  653.      Set one of `ibmpc', `j3100', `pc98' to select machine specific
  654.      code.
  655.  
  656.  
  657.  
  658. IBM PC
  659. ------
  660.  
  661. If you use IBM PC, evaluate `(setq dos-machine-type 'ibmpc)', then
  662. `Ctrl-SPACE' will generate null code and `meta-flag' will works.
  663.  
  664.  
  665.  
  666. Toshiba J-3100
  667. --------------
  668.  
  669. If you have J-3100, evaluate `(setq dos-machine-type 'j3100)', then 
  670. following functions will be abailable in addition to IBM PC features.
  671.  
  672.      set-cursor-mode
  673.      get-screen-mode
  674.      set-cursor-mode
  675.      set-keyclick
  676.      set-screen-mode
  677.  
  678. See `lisp/dos-fns.el' for more information.
  679.  
  680.  
  681.  
  682. NEC PC-9801, EPSON PC-386
  683. -------------------------
  684.  
  685. If you have PC-9801 or EPSON PC-386, evaluate `(setq
  686. dos-machine-type 'pc98)', then following functions will be abailable.
  687.  
  688.      pc98-assign-special-key
  689.      pc98-cancel-special-key
  690.  
  691. See `src/dosfns.c' for more information.
  692.  
  693.  
  694.  
  695. Other Demacs Features
  696. =====================
  697.  
  698.   1. Filename Completion
  699.  
  700.      Demacs provides filename completion feature. Filename may include
  701.      drive name in its front. For example, we assume the current
  702.      directory is `c:/tools/emacs' and there is a file `d:/config.sys',
  703.      under this condition `C-x C-f' invokes `find-file' function then
  704.      the function prompts like
  705.  
  706.           Find file: c:/tools/emacs/
  707.  
  708.      at this point your typing of `d:/confi' and TAB key causes:
  709.  
  710.           a:/tools/emacs/d:confi^I  -> d:/config.sys [sole complete]
  711.  
  712.   2. Child Process
  713.  
  714.      Function `suspend-emacs' calls sub shell. Try `C-z' and a new
  715.      command shell is invoked.
  716.  
  717.      Function `call-process' calls sub shell like `suspend-emacs' but
  718.      its stdout is redirected to a temporary file and it will be
  719.      displayed after completion of the process. Try `M-!'. But don't
  720.      call programs which require input from keyboard, because Demacs
  721.      can't response to them.
  722.  
  723.  
  724.   3. Enhanced Dired
  725.  
  726.      This package includes enhanced dired-mode by Sebastian Kremer and their
  727.      dos ported codes which works without UNIX compatible `ls.exe'.
  728.  
  729.      To use this, extract `edired.lzh' to your lisp directory and put
  730.      lines
  731.  
  732.           (setq dired-mode-map nil)
  733.           (load "emacs-19")
  734.           (autoload 'dired "dired" nil t)
  735.  
  736.      to your startup file (`direddos.elc' is loaded from `dired.elc'). 
  737.  
  738.      If you have `ls.exe', append
  739.  
  740.           (setq dired-load-hook
  741.                 '(lambda ()
  742.                    (setq dired-ls-program "ls")))
  743.  
  744.      to your startup file. If you use Demacs with `-keep' option, this
  745.      configration works faster than former one.
  746.  
  747.      You can get more infomation from `dired.README' and its document
  748.      string.
  749.  
  750.  
  751.  
  752. Restrictions
  753. ************
  754.  
  755.    * Demacs does not support asyncronous process. Therefore you can not use
  756.      standard `compile.el', `shell-mode.el' and etc. I think it's
  757.      too painful, so, customized `compiled.el' and `dired.el' are
  758.      provided. See lisp directory.
  759.  
  760.    * `Ctrl-G' can't generate inturrupt signal. So you can't quit lisp-form
  761.      like this:
  762.  
  763.           (while t ())
  764.  
  765.      You shoud use the following form instead of it.
  766.  
  767.           (while (not (input-pending-p)) ())
  768.  
  769.    * Demacs backup filename convension is following.
  770.  
  771.      Base backup filename is made from following rule.
  772.  
  773.           foo      ->  foo.~
  774.           foo.c    ->  foo.c~
  775.           foo.tex  ->  foo.te~
  776.  
  777.      Since DOS filename rule (8.3) is too tight, numeric backup such like
  778.      `foo.c.~2~' can not be used.
  779.  
  780.      Similarly auto save filename is made from following rule.
  781.  
  782.           abcdefgh ->  #abcdefg.#
  783.           foo.c    ->  #foo.c#
  784.           foo.tex  ->  #foo.te#
  785.  
  786.      Similarly, auto-save file name is created.
  787.  
  788.    * If you don't configure XMS or VCPI driver and invoke Demacs with
  789.      `-keep' option, child process Demacs (or go32 application) will
  790.      *not* work correctly.
  791.  
  792.    * If you use VCPI manager and you have less extended memory than
  793.      300KB, Demacs will hang up or being to work *VERY* slowly. Plese
  794.      give Demacs much memory if you met this.
  795.  
  796.  
  797.  
  798. Compilation
  799. ***********
  800.  
  801. If you wish to recompile Demacs, 'GJ's GCC/G++' (GNU C compiler for DOS)
  802. and original Emacs source are required.
  803.  
  804. Diffs to the original Emacs source files are included in
  805. `src\diffs.lzh'. Unpack the archive. The files in `diffs.lzh' are not
  806. `diff' form but they are full source files, so you need not to apply
  807. patch.  You may need to alter makefile.
  808.  
  809. Then run `make -f xmakefile all' command. Make generates `temacs' and
  810. `demacs'.  Caution! just `make' will destroy `xmakefile'. I prepared
  811. `xmake.bak' for you.
  812.  
  813. Note that all modifications are embeded by `#ifdef MSDOS' and
  814. `#endif MSDOS', so you may follow my modifications easily. Machine
  815. specified codes are embedded in similar flags.
  816.  
  817.          *.h *.c (C source files)
  818.             |
  819.       ------| make
  820.       |     | 
  821.       |     V
  822.       |   temacs (plain demacs) and lisp/*.el (lisp source files)
  823.       |     | 
  824.       |     | go32 temacs -batch -l loadup.el dump
  825.       |---->|
  826.             V
  827.           xemacs
  828.  
  829. Provided `bin/temacs' enables you to reconfigure demacs without
  830. recompilation. After editing lisp sources which are loaded up by
  831. `loadup.el', run `go32 temacs -batch -l loadup.el dump'.
  832.  
  833.  
  834.  
  835. Terminal Specified Features
  836. ***************************
  837.  
  838. If your machine is IBM PC or its compatibles, set environment variable
  839. TERM with `ibmpc', then you can use cursor keys and functon
  840. keys.
  841.  
  842. The functions which is assigned to those keys are as follows:
  843.  
  844.      Key        Function
  845.      ----------+--------------------+-----------------
  846.      PgUp       scroll-up            Scroll text upward by page        
  847.      PgDn       scroll-down          Scroll text downward by page      
  848.      Insert     set-mark-command     Set mark current cursor position  
  849.      Del        delete-backward-char Delete previous character         
  850.      UpArrow    previous-line        Move cursor vertically up         
  851.      LeftArrow  backward-char        Move cursor left                  
  852.      RightArrow forward-char         Move cursor right                 
  853.      DownArrow  next-line            Move cursor vertically down       
  854.      Home       beginning-of-buffer  Move cursor beginning of buffer   
  855.      End        end-of-buffer        Move cursor end of buffer         
  856.  
  857.  
  858.      F1         help-for-help        Show help for help
  859.      Shift-F1   describe-mode        Show help of current mode
  860.      Ctrl-F1    describe-key         Show help of key
  861.  
  862.      F2         other-window         Select different window
  863.      Shift-F2   switch-to-buffer     Select buffer by name
  864.      Ctrl-F2    list-buffers         Display a list of buffers
  865.  
  866.      F3         delete-other-windows Make current window fill the screen
  867.      Shift-F3   delete-window        Remove current window
  868.      Ctrl-F3    scroll-other-window  Scroll text of other window upward by page
  869.  
  870.      F4         split-window-vertically      Split current window vertically
  871.      Shift-F4   enlarge-window               Make current window bigger
  872.      Ctrl-F4    shrink-window                Make current window smaller
  873.  
  874.      F5         split-window-horizontally    Split current window horizontally
  875.      Shift-F5   enlarge-window-horizontally  Make current window wider
  876.      Ctrl-F5    shrink-window-horizontally   Make current window narrower
  877.  
  878.      F6         copy-region          Copy from mark till cursor to yank-buffer
  879.      Shift-F6   kill-region          Cut from mark till cursor to yank-buffer
  880.      Ctrl-F6    yank                 Paste yank-buffer to current cursor position
  881.  
  882.      F7         goto-line            Goto line
  883.      Shift-F7   isearch-forward      Do incremental search forward
  884.      Ctrl-F7    query-replace        Do query replace
  885.  
  886.      F8         find-file            Edit file
  887.      Shift-F8   save-buffer          Save current buffer
  888.      Ctrl-F8    write-file           Write current buffer into file
  889.  
  890.      F9         dired                        'Edit' directory
  891.      Shift-F9   compile                      Compile the program
  892.      Ctrl-F9    repeat-complex-command       Edit and re-evaluate last command
  893.  
  894.      F10        shell-command                Execute command
  895.      Shift-F10  suspend-emacs                Call DOS command interpreter
  896.      Ctrl-F10   save-buffers-kill-emacs      Quit Emacs
  897.  
  898.  
  899. Summary:
  900.  
  901.  | F.1 |  F.2  |  F.3  |  F.4   |  F.5   | F.6 |  F.7  | F.8  | F.9  | F.10   |
  902.  |help | nextW | delOW |splitWH |splitWV |copy | goto  | read |dired |command |
  903. s|mode |switchW| delW  |largeWH |largeWV |kill |search | save | make |suspend |
  904. c|key  |buffers|scrlOW |shrnkWH |shrnkWV |yank |replace|write |repeat| quit   |
  905.  
  906.  
  907.  
  908. If you want to append and/or change the function, use lisp variable
  909. `term-setup-hook'. See `lisp/term/ibmpc.el'.
  910.  
  911. If you don't need cursor and function keys, append next line to
  912. `$HOME/_emacs':
  913.  
  914.      (setq term-file-prefix nil)
  915.  
  916.  
  917.  
  918. Differences from UNIX Version
  919. *****************************
  920.  
  921.  
  922.  
  923. List of Functions which are not inplemented to Demacs
  924. =====================================================
  925.  
  926.      accept-process-output                   process-list
  927.      continue-process                        process-mark
  928.      delete-process                          process-name
  929.      file-locked-p                           process-send-eof
  930.      get-buffer-process                      process-send-region
  931.      get-process                             process-send-string
  932.      interrupt-process                       process-sentinel
  933.      kill-process                            process-status
  934.      list-processes                          processp
  935.      make-symbolic-link                      quit-process
  936.      open-network-stream                     set-process-buffer
  937.      process-buffer                          set-process-filter
  938.      process-command                         set-process-kanji-code
  939.      process-exit-status                     set-process-sentinel
  940.      process-filter                          start-process
  941.      process-id                              stop-process
  942.      process-kanji-code                      waiting-for-user-input-p
  943.      process-kill-without-query
  944.  
  945.  
  946.  
  947. List of Variables which are not inplemented to Demacs
  948. =====================================================
  949.  
  950.      delete-exited-processes                 process-connection-type
  951.  
  952.  
  953.  
  954. List of Functions added to Demacs
  955. =================================
  956.  
  957.      bdos                                    intdos
  958.      define-file-name-file-type              invoke-find-file-type
  959.      demacs-version                          make-register
  960.      disk-free-space                         register-value
  961.      disk-total-space                        set-cursor-mode
  962.      file-type-internal                      set-default-file-type
  963.      file-type-p                             set-file-type
  964.      find-file-not-found-set-file-type       set-keyclick
  965.      find-file-type-from-file-name           set-register-value
  966.      get-cursor-mode                         set-screen-mode
  967.      get-screen-mode                         toggle-pass8-mode
  968.      int86
  969.  
  970.  
  971.  
  972. List of Functions added to Demacs
  973. =================================
  974.  
  975.      default-file-type                       file-type
  976.      demacs-version                          file-type-alist
  977.      demacs-version-date                     find-file-type
  978.      dos-inhibit-setdisk                     pass8-mode
  979.      dos-machine-type                        register-name-by-byte-alist
  980.      file-name-file-type-alist               register-name-by-word-alist
  981.